home *** CD-ROM | disk | FTP | other *** search
-
- Foreach - Deluxe
- ================
-
- Version 1.0
- (31.3.94)
-
-
- Dieses Foreach-Kommando ermöglicht es, mit Kommandos, die normalerweise
- keine Jokerzeichen unterstützen (z.B. Rename), solche zu verwenden. Es
- ist aber so flexibel, daß es ein weit größeres Anwendungsgebiet hat und
- man es so schon nach kurzer Zeit nicht mehr missen möchte.
-
-
- Aufruf:
- -------
-
- foreach <Muster> <Kommando>
-
-
- Einführung:
- -----------
- Da ich meine, daß man das Kommando am besten an Beispielen erlernen kann,
- zuerst einige Beispiele zur Einführung:
-
-
- - Anzeigen aller Dateien, die auf .c enden mit dem 'more' Befehl:
-
- foreach #?.c more &
-
- Das Muster ist hierbei #?.c . Das Kommando wird nun für jedes passende
- File aufgerufen, wobei das '&'-Zeichen jedesmal durch den Filenamen
- ersetzt wird.
-
-
- - Alle #?.lha und #?.lzh Dateien in die RamDisk entpacken:
-
- foreach #?.(lha|lzh) lha x & ram:
-
-
- - Abändern der Endung .lzh in .lha bei allen Files:
-
- foreach #?.lzh rename & &<.lha
-
- Das ist neu! Die Zeichen '&<' werden im Gegensatz zum einfachen '&' durch
- den Filenamen ohne Endung ersetzt.
-
-
- - Dreifaches Kopieren einer Datei:
-
- foreach {copy1,copy2,copy3} copy Original &
-
- Erzeugt drei Kopien von Original mit den Namen copy1,copy2 und copy3.
-
-
- - Compilieren aller #?.cc Dateien mit gcc:
-
- foreach #?.cc gcc $
-
- Man beachte: Das '$'-Zeichen wird auf einmal zu allen passenden Files
- expandiert, es wird also nur ein Kommando erzeugt, das z.B. so aussehen
- könnte: ( gcc file1.cc file2.cc file3.cc )
-
-
-
- Referenz:
- ---------
-
- & - wird bei jedem Kommando, das erzeugt wird, durch einen passenden
- String aus dem Muster (z.B. dem Filenamen) ersetzt.
-
- &< - wie '&', nur wird hier die Endung weggelassen (die letzte Endung,
- falls es mehrere Punkte im Namen gibt). Gibt es keinen Punkt, so
- wird (wie bei '&') der komplette String verwendet.
-
- &> - wie '&', nur wird hier nur die Endung übernommen (die letzte Endung).
- Falls keine Endung existiert, wird ein leerer String verwendet
- (also auch kein Leerzeichen).
-
- $ - wird durch alle passenden Strings aus dem Muster (gleichzeitig)
- ersetzt (durch je ein Leerzeichen getrennt, am Anfang und Ende kein
- Leerzeichen).
-
- && - wird durch ein einzelnes '&'-Zeichen ersetzt.
-
- % - wird durch einen leeren String ersetzt.
-
-
-
- Bemerkungen:
- ------------
-
- - In der Mengenangabe können auch leere Elemente vorkommen. Also z.B.:
- {} oder {aaa,aa,a,}.
-
- - Vorsicht! Kommen in einem String in der Menge Leerzeichen vor, so muß
- die Menge in Anführungszeichen gesetzt werden, da der Commandline-Parser
- ja an den Leerzeichen die Argumente auseinanderschneidet:
-
- Falsch: {Hugo Klein,Ernie,Bert}
- Richtig: "{Hugo Klein,Ernie,Bert}"
-
- - Sobald in einem Kommando ein '&'-Zeichen vorkommt, werden mehrere
- einzelne Kommandos erzeugt. (Kommen also nur '$'-Zeichen vor, so
- wird nur ein Kommando erzeugt).
-
-
- Tips:
- -----
-
- - Es ist möglich, mehrere 'foreach'-Kommandos zu schachteln, wodurch das
- Kommando noch leistungsfähiger wird.
-
- Beispiel: Anfertigen von zwei Sicherheitskopien aller #?.c Dateien:
-
- foreach #?.c foreach {bak1,bak2} copy & &<.&&
-
- Man beachte, daß das erste 'foreach' das '&&'-Zeichen zu einem einzelnen
- '&' verkürzt, so daß das zweite 'foreach' z.B. so aussieht:
- foreach {bak1,bak2} file1.c file1.&
-
-
- - Das '%' Zeichen dient vor allem dazu, Mehrdeutigkeiten zu verhindern.
- Man will z.B. einen String zweimal direkt hintereinander schreiben:
- Falsch: foreach {hallo,test,moin} echo &&
- Richtig: foreach {hallo,test,moin} echo &%&
-
-
-
- Copyright:
- Diese Programm ist Public Domain. Es darf beliebig kopiert werden unter
- der Voraussetzung, daß das Programm und diese Anleitung in keiner Weise
- verändert werden und das Programm nie getrennt von der Anleitung kopiert
- wird.
- Das Programm darf ohne meine Erlaubnis weder verkauft, noch zu
- kommerziellen Produkten hinzugefügt werden (bitte vorher Brief oder EMail
- an mich).
-
-
- Dirk Farin
- Kapellenweg 15
- 72070 Tübingen
- Germany
-
- EMail: farindk@trick.informatik.uni-stuttgart.de
-
-
- Über Bug-Reports und Verbesserungsvorschläge würde ich mich sehr freuen!
-
-
-
-